import { http } from "@/utils/http";
export type logQuery = {
  /**
   * 业务类型(0-其它,1-新增,2-修改,3-删除,4-授权,5-导出,6-导入,7-强退,8-生成代码,9-清空数据)
   */
  businessType?: number;
  /**
   * 消耗时间(毫秒)
   */
  costTime?: number;
  /**
   * 组织名称
   */
  deptName?: string;
  /**
   * 错误消息
   */
  errorMsg?: string;
  /**
   * 日志ID
   */
  id?: string;
  /**
   * 返回参数
   */
  jsonResult?: string;
  /**
   * 请求方法
   */
  method?: string;
  /**
   * 操作类别(0-其它,1-后台用户,2-手机端用户)
   */
  operatorType?: number;
  /**
   * 主机地址
   */
  operIp?: string;
  /**
   * 操作地点
   */
  operLocation?: string;
  /**
   * 操作人员
   */
  operName?: string;
  /**
   * 请求参数
   */
  operParam?: string;
  /**
   * 操作时间
   */
  operTime?: string;
  /**
   * 请求URL
   */
  operUrl?: string;
  /**
   * 请求方式(GET,POST,PUT,DELETE等)
   */
  requestMethod?: string;
  /**
   * 操作状态(0-正常,1-异常)
   */
  status?: number;
  /**
   * 租户ID
   */
  tenantId?: string;
  /**
   * 操作模块
   */
  title?: string;
  [property: string]: any;
};
/**
 * Result
 *
 * ResultListSysOperLog
 */
export type OperLogResult = {
  /**
   * 状态码
   */
  code?: number;
  /**
   * 返回数据
   */
  data?: SysOperLog[];
  /**
   * 返回信息
   */
  message?: string;
  [property: string]: any;
};
/**
 * 返回数据
 *
 * PageInfoSysOperLog
 */
export type PageInfoSysOperLog = {
  endRow?: number;
  hasNextPage?: boolean;
  hasPreviousPage?: boolean;
  isFirstPage?: boolean;
  isLastPage?: boolean;
  list?: SysOperLog[];
  navigateFirstPage?: number;
  navigateLastPage?: number;
  navigatepageNums?: number[];
  navigatePages?: number;
  nextPage?: number;
  pageNum?: number;
  pages?: number;
  pageSize?: number;
  prePage?: number;
  size?: number;
  startRow?: number;
  total?: number;
  [property: string]: any;
};
/**
 * 操作日志实体类
 *
 * SysOperLog
 */
export type SysOperLog = {
  /**
   * 业务类型(0-其它,1-新增,2-修改,3-删除,4-授权,5-导出,6-导入,7-强退,8-生成代码,9-清空数据)
   */
  businessType?: number;
  /**
   * 消耗时间(毫秒)
   */
  costTime?: number;
  /**
   * 组织名称
   */
  deptName?: string;
  /**
   * 错误消息
   */
  errorMsg?: string;
  /**
   * 日志ID
   */
  id?: string;
  /**
   * 返回参数
   */
  jsonResult?: string;
  /**
   * 请求方法
   */
  method?: string;
  /**
   * 操作类别(0-其它,1-后台用户,2-手机端用户)
   */
  operatorType?: number;
  /**
   * 主机地址
   */
  operIp?: string;
  /**
   * 操作地点
   */
  operLocation?: string;
  /**
   * 操作人员
   */
  operName?: string;
  /**
   * 请求参数
   */
  operParam?: string;
  /**
   * 操作时间
   */
  operTime?: string;
  /**
   * 请求URL
   */
  operUrl?: string;
  /**
   * 请求方式(GET,POST,PUT,DELETE等)
   */
  requestMethod?: string;
  /**
   * 操作状态(0-正常,1-异常)
   */
  status?: number;
  /**
   * 租户ID
   */
  tenantId?: string;
  /**
   * 操作模块
   */
  title?: string;
  [property: string]: any;
};

// 分页查询操作日志
export const getOperLogList = (data?: logQuery) => {
  return http.request<OperLogResult>("post", "/operLog/list", { data });
};

// 分页查询操作日志
export const getOperLogPage = (data?: logQuery) => {
  return http.request<PageInfoSysOperLog>("post", "/operLog/page", { data });
};

// 获取操作日志详细信息
export const getOperLogDetail = (operId: string) => {
  return http.request<OperLogResult>("get", `/operLog/${operId}`);
};

// 删除操作日志
export const deleteOperLog = (operIds: string[]) => {
  return http.request("delete", `/operLog/${operIds}`);
};

// 清空操作日志
export const cleanOperLog = () => {
  return http.request("delete", "/operLog/clean");
};

// 导出操作日志
export const exportOperLog = (params?: logQuery) => {
  return http.request("get", "/operLog/export", {
    params,
    responseType: "blob" // 特别指定响应类型为文件流
  });
};
